<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <div id="box"></div>
    <script>
      //   let arr = [3, 5, 1, 6, 8, 3, 2, 1];
      //   let max = 0;
      //   for (let value of arr) {
      //     if (value > max) {
      //       max = value;
      //     }
      //   }
      //   console.log(max);
      //   把数组中的奇数存入一个数组，数组中的偶数存入一个数组
      //   let arr = [1, 2, 3, 4, 5];
      //   // 结果 arr1=[1,3,5],arr2 = [2,4]
      //   let arr1 = [], //0
      //     arr2 = [];
      //   for (let i in arr) {
      //     if (arr[i] % 2 == 0) {
      //       arr1[arr1.length] = arr[i];
      //     } else {
      //       arr2[arr2.length] = arr[i];
      //     }
      //   }
      //   console.log(arr1, arr2);
      //   let arr = [
      //     1,
      //     "abc",
      //     null,
      //     undefined,
      //     true,
      //     false,
      //     { name: "张三" },
      //     [123, true],
      //   ];
      //   arr.length = 15;
      //   console.log(arr);
      //   console.log(10 in arr);
      //   let arr = [1, 23, 3];
      //   for (let i = 0; i < arr.length; i++) {
      //     console.log(arr[i]);
      //   }
      //   for (let i = arr.length - 1; i >= 0; i--) {
      //     console.log(arr[i]);
      //   }
      //   for (let i in arr) {
      //     console.log(arr[i]);
      //   }
      //   for (let value of arr) {
      //     console.log(value);
      //   }
      //   console.log(typeof null);
      //   console.log(typeof { name: 123 });
      //   console.log(typeof arr);
      //   console.log(Array.isArray(null));

      //   作业3： 小明今天去彩票店购买双色球，请帮他随机出一组双色球号码，双色球的规则请自行百度查看
      //   1-33 且不能重复 6个数字
      //   1-16
      //   function getRandom(min, max) {
      //     return Math.floor(Math.random() * (max - min + 1) + min);
      //   }
      //   let red = [];
      //   while (red.length < 6) {
      //     let n = getRandom(1, 33);
      //     if (!red.includes(n)) {
      //       red[red.length] = n;
      //     }
      //   }
      //   let blue = getRandom(1, 16);
      //   console.log(red, blue);
      //   let arr = [1, 2, 3, 4, 5];
      //   delete arr[2];
      //   //   arr[arr.length] = 6;
      //   console.log(arr);
      //       0.在数组中间位置插入一个元素
      // 例如：插入3   arr = [1, 2, 4, 5]，结果为[1, 2, 3, 4, 5]
      // 例如：插入a   arr = [1,2,3]，结果为[1, 2, 'a',3]
      //   let arr = [1, 2, 4, 5];
      //   let len = Math.ceil(arr.length / 2); //3
      //   let res = [];
      //   for (let i in arr) {
      //     if (i == len) {
      //       res[res.length] = "a";
      //     }
      //     res[res.length] = arr[i];
      //   }
      //   console.log(res);

      //   arr = [1, 2, 2, 3, 4, 4, 5]，去除重复元素后，结果为[1, 2, 3, 4, 5]
      //   let arr = [1, 2, 2, 3, 4, 4, 5];
      //   let res = [1, 2];
      //   for (let i in arr) {
      //     let flag = true; //做一个标识
      //     for (let v of res) {
      //       if (v == arr[i]) {
      //         flag = false;
      //       }
      //     }
      //     if (flag) {
      //       res[res.length] = arr[i];
      //     }
      //   }
      //   console.log(res);
      //   arr = [1, 2, 2, 3, 2, 4, 5]，查找元素2出现的次数，结果为3
      // let arr = [1, 2, 2, 3, 2, 4, 5];
      // let count = 0;
      // for (let v of arr) {
      //   if (v == 2) {
      //     count++;
      //   }
      // }

      //       23.将数组中的元素去掉首尾空格
      // 例如：arr = [" hello ", " world "]，去掉首尾空格后，结果为["hello", "world"]
      // let arr = [" hello ", " world "];
      // let res = [];
      // for (let v of arr) {
      //   res[res.length] = v.trim();
      // }
      // console.log(res);

      //       24.在数组中查找最大的k个元素
      // 例如：arr = [1, 2, 3, 4, 5]，查找最大的3个元素，结果为[5, 4, 3]
      // let arr = [3, 1, 7, 4, 5];
      // for (let i = 0; i < arr.length; i++) {
      //   for (let j = i + 1; j < arr.length; j++) {
      //     if (arr[i] < arr[j]) {
      //       let tmp = arr[i];
      //       arr[i] = arr[j];
      //       arr[j] = tmp;
      //     }
      //   }
      // }
      // console.log(arr);
      // let arr = [
      //   [1, 5],
      //   [7, 3],
      //   [3, 5],
      // ];
      // let max = 0;
      // for (let v of arr) {
      //   let sum = 0;
      //   for (let n of v) {
      //     sum += n;
      //   }
      //   if (max < sum) {
      //     max = sum;
      //   }
      // }
      // console.log(max);

      // 28.  句子中的最多单词数
      // 输入：arr = ["alice and bob love leetcode", "i think so too", "this is great thanks very much"]
      // 输出：6
      // 解释：
      // - 第一个句子 "alice and bob love leetcode" 总共有 5 个单词。
      // - 第二个句子 "i think so too" 总共有 4 个单词。
      // - 第三个句子 "this is great thanks very much" 总共有 6 个单词。
      // 所以，单个句子中有最多单词数的是第三个句子，总共有 6 个单词。
      // 循环这个数组，每次循环的时候 把当前循环的值，分割成数组，
      //   获取数组的长度，把长度存到一个数组内，最后找到最大值
      // let arr = [
      //   "alice and bob love leetcode",
      //   "i think so too",
      //   "this is great thanks very much",
      // ];
      // let max = 0;
      // for (let v of arr) {
      //   if (v.split(" ").length > max) {
      //     max = v.split(" ").length;
      //   }
      // }
      // console.log(max);

      //       29.求和
      // 输入：nums = [1,2,3,4]
      // 输出：[1,3,6,10]
      // 解释：动态和计算过程为 [1, 1+2, 1+2+3, 1+2+3+4] 。
      // let nums = [1, 2, 3, 4];
      // let res = [];
      // //循环所有的数组值
      // for (let i in nums) {
      //   //每次循环的适合计算当前循环的这个数的和
      //   let sum = 0;
      //   for (let j = 0; j <= i; j++) {
      //     sum += nums[j];
      //   }
      //   res[res.length] = sum;
      // }
      // console.log(res);

      // arr.at(index)//获取下标位置的元素 允许正数和负数。负整数从数组中的最后一个元素开始倒数。
      // console.log(arr.at(-2));
      // arr.concat(value0, value1, /* … ,*/ valueN) //方法用于合并两个或多个数组。此方法不会更改现有数组，而是返回一个新数组
      // let arr2 = ["张三", "李四", "王五"];
      // let arr3 = [1, 2, 3];
      // console.log(arr2.concat(arr, arr3));
      // arr.fill(value, start, end)//填充数组（需要提前预留位置）
      // let n = new Array(10);
      // console.log(n);
      // n.fill("张三", 0, 10);
      // arr.flat(depth)//指定的深度递归遍历数组 默认1层
      // console.log(arr.flat(2));
      // arr.includes(searchElement, [fromIndex])//是否包含指定的值，从下标位置开始 true false
      // console.log(arr.includes("e"));
      // arr.indexOf(searchElement, [fromIndex])//返回值的下标 未找到返回-1
      // console.log(arr.indexOf("e333"));

      // arr.join(separator)//数组通过某个字符拼接成字符串
      // console.log(arr.join("@"));
      // arr.keys()//返回数组下标
      // let iterator = arr.keys();
      // console.log(iterator.next());
      // console.log(iterator.next());
      // console.log(iterator.next());
      // for (const key of iterator) {
      //   console.log(key);
      // }

      // arr.lastIndexOf() //方法返回指定元素（也即有效的 JavaScript 值或变量）在数组中的最后一个的索引，如果不存在则返回 -1
      // arr.pop() //方法从数组中删除最后一个元素，并返回该元素的值。此方法会更改数组的长度
      // console.log(arr.pop());
      // console.log(arr);
      // arr.push(element0, element1, /* … ,*/ elementN)// 方法将一个或多个元素添加到数组的末尾，并返回该数组的新长度。
      // let arr = [
      //   "a",
      //   "b",
      //   "c",
      //   "d",
      //   "e",
      //   100000000,
      //   2,
      //   3,
      //   false,
      //   null,
      //   new Date(),
      // ];

      // console.log(arr.push("f", "g"));
      // console.log(arr);
      // arr.reverse() //方法将数组中元素的位置颠倒，并返回该数组。\
      // console.log(arr.reverse());
      // arr.shift() //方法从数组中删除第一个元素，并返回该元素的值。此方法更改数组的长度。
      // console.log(arr.shift());
      // arr.slice(start, end)//数组截取，返回截取部分
      // console.log(arr.slice(2, 4));
      // arr.splice(start, deleteCount, item1, item2, itemN)//方法通过删除或替换现有元素或者原地添加新的元素来修改数组，并以数组形式返回被修改的内容。此方法会改变原数组
      // arr.splice(1, 2);
      // console.log(arr);
      // arr.toLocaleString()//数组中的元素将使用各自的 toLocaleString 方法转成字符串
      // console.log(arr.toLocaleString());
      // arr.toString() //方法返回一个字符串，表示指定的数组及其元素
      // console.log(arr.toString());
      // arr.unshift() //方法将一个或多个元素添加到数组的开头，并返回该数组的新长度
      // arr.unshift(6666);
      // console.log(arr);
      // let arr = [1, 2, 3, 4, 5, 6];

      //检查每个值是否都符合条件
      // let res = arr.every((item, index) => {
      //   return item.includes("a");
      // });
      // arr.every(function(item,index){

      // })
      //数组排序 是同asscii码比较
      // arr.sort((a, b) => {
      //   return a.codePointAt(1) - b.codePointAt(1);
      // });
      // console.log(arr);
      // console.log(6 % 2 == 0);
      // let res = arr.filter((item, index) => {
      //   return item % 2 == 0;
      // });
      // 返回符合传入测试（函数）条件的数组元素。
      // let res = arr.findIndex((item, index) => {
      //   return item % 3 == 0;
      // });
      // console.log(res);
      // arr.forEach((item, index) => {
      //   console.log(index, item);
      // });
      // a = [3, 4, 1];
      // let res = Array.from(a, (item, index) => {
      //   return item + 2;
      // });
      // let res = a.map((item, index,array) => {
      //   if (item == 3) {
      //     return "a";
      //   } else {
      //     return item;
      //   }
      // });
      // console.log(res);

      // let arr = [1, 2, 3, 4, 5];
      // let res = arr.reduceRight((pre, item, index) => {
      //   return pre * item;
      // });
      // console.log(res);
      // const arr = [
      //   [0, 1],
      //   [2, 3],
      //   [4, 5],
      // ];
      // let res = arr.reduceRight((pre, item, index) => {
      //   return pre.concat(item);
      // }, []);
      // console.log(res);
    </script>
  </body>
</html>
